package com.cvo.scrumtoolkit.server;

import java.util.LinkedList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;



import com.cvo.scrumtoolkit.client.entities.BacklogItem;
import com.cvo.scrumtoolkit.client.entities.Project;
import com.cvo.scrumtoolkit.client.services.ScrumToolService;
import com.cvo.scrumtoolkit.shared.DateTime;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;


@SuppressWarnings("serial")
public class ScrumToolServiceImpl extends RemoteServiceServlet implements ScrumToolService {

	@Override
	public List<Project> getProjects() throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Project projectsave(Project project) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Project projectload(String project) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<BacklogItem> getItems(String project) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public BacklogItem saveItem(BacklogItem obj) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public BacklogItem getItem(long id) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void updateItem(BacklogItem obj) throws Exception {
		// TODO Auto-generated method stub
		
	}

	@Override
	public int getNumberOfItems(Project project) throws Exception {
		// TODO Auto-generated method stub
		return 0;
	}

//	
//	@Override
//	public Projectclass projectsave(Projectclass project) {
//		
//		EntityManager em =EMF.get().createEntityManager();
//		System.out.println( );
//		final List<Itemclass> items = Items.generateItems();
//			DateTime datum = new DateTime();
//		  project.setCreationDate(datum.getDate() + " " + datum.getTime());	
//			System.out.print(datum.getDate() + " " + datum.getTime());
//			for(Itemclass i:items){
//				EntityManager em1 = EMF.get().createEntityManager();
//				i.setProjectname(project.getProjectname());
//				em1.persist(i);
//				em1.close();
//			}	
//			
//		project.setNumberofitems(items.size());
//		em.persist(project);
//		em.close();
//		return project;
//	}
//
//	@SuppressWarnings("unchecked")
//	@Override
//	public List<Projectclass> getProjects() {
//	
//		EntityManager em = EMF.get().createEntityManager();
//		Query q = em.createQuery("select from " + Projectclass.class.getName());
//		List<Projectclass> list = (List<Projectclass>) q.getResultList();
//		List<Projectclass> result = new LinkedList<Projectclass>(list);
//		em.close();
//		return result;
//		
//		
//		
//	}
//
//	@SuppressWarnings("unchecked")
//	@Override
//	public List<Itemclass> getItems(String project) throws Exception {
//		EntityManager em = EMF.get().createEntityManager();
//		Query q = em.createQuery("select from " + Itemclass.class.getName() +  " where projectname='"  + project + "'"+ " order by prioriteit ");
//		List<Itemclass> list = (List<Itemclass>)q.getResultList();
//		List<Itemclass> result = new LinkedList<Itemclass>(list);
//		em.close();
//		return result;
//	}
//
//	@Override
//	public Projectclass projectload(String project) throws Exception {
//		EntityManager em = EMF.get().createEntityManager();
//		Query q = em.createQuery("select from " + Projectclass.class.getName() + " where projectname='" + project + "'");
//		Projectclass projectclass = (Projectclass) q.getSingleResult();
//		em.close();
//		return projectclass;
//	}
//	@Override
//	public Itemclass saveItem(Itemclass obj) throws Exception {
//		
//		EntityManager em = EMF.get().createEntityManager();
//		em.persist(obj);
//		em.close();
//		
//		return obj;
//	}
//
//	@Override
//	public Itemclass getItem(long id) throws Exception {
//		EntityManager em = EMF.get().createEntityManager();
//		Query q = em.createQuery("select from " + Itemclass.class.getName() 
//				+ " where id=" + id );
//		Itemclass result = (Itemclass) q.getSingleResult();
//		
//		em.close();
//		
//		return result;
//	}
//	
//
//	@Override
//	public int getNumberOfItems(String project) throws Exception {
//			EntityManager em = EMF.get().createEntityManager();
//			int numberofitems;
//			Query q = em.createQuery("select from " + Projectclass.class.getName() + " where projectname='" + project + "'");
//			Projectclass projectclass = (Projectclass) q.getSingleResult();
//			em.close();
//			numberofitems=projectclass.getNumberofitems();
//			return numberofitems;
//	}
//
//	@Override
//	public void setNumberOfItems(Projectclass projectclass, int waarde)
//			throws Exception {
//		EntityManager em = EMF.get().createEntityManager();
//	    projectclass.setNumberofitems(projectclass.getNumberofitems()+waarde);
//	    em.persist(projectclass);
//		em.close();		
//	}
//
//	@Override
//	public void updateItem(Itemclass obj, Itemclass objx) throws Exception {
//		EntityManager em = EMF.get().createEntityManager();
//		int hulp=objx.getPrioriteit();
//		objx.setPrioriteit(obj.getPrioriteit());
//		obj.setPrioriteit(hulp);
//		em.persist(obj);
//		em.close();
//		EntityManager emx = EMF.get().createEntityManager();
//	    emx.persist(objx);
//		emx.close();
//
//		
//	}


}
